package com.mgq.algorithm.dp;

import java.util.HashSet;
import java.util.Set;

/**
 * 给定一个数组arr，求差值为k的去重数字对.
 * 例如: [3,5,1,6,0,0] k=2,去重数字对是[3,5],[1,3]
 */
public class DistinctArray {
    /**
     * 求去重数字对
     *
     * @param array
     * @return
     */
    public static void distinct(int[] array,int k) {
        Set<Integer> set = new HashSet<>();
        for (int j : array) {
            set.add(j);
        }
        //如果表示[3.5]和[5,3]是同一个.如何去重
       //思维,是遍历hash表.不是遍历数组. 直接加差值,去找hash表是否存在
        //set [3,5,1,6]
        for (Integer a : set) {
            if (set.contains(a+k)) {
                System.out.println("数字对是:[" + a + "," + (a+k) + "]");
            }
        }
    }

    public static void main(String[] args) {
       // distinct(new int[]{3,5,1,6,0,0},2);
       // distinct(new int[]{3,5,1,6,0,0},4);
        distinct(new int[]{3,5,1,6,0,0},1);

    }
}
